package third

/*
	输入一个整数数组，实现一个函数来调整该数组中数字的顺序，使得所有奇数位于数组的前半部分，所有偶数位于数组的后半部分。

	示例：

	输入：nums =[1,2,3,4]
	输出：[1,3,2,4]
	注：[3,1,2,4] 也是正确的答案之一。

	提示：

	0 <= nums.length <= 50000
	0 <= nums[i] <= 10000

	来源：力扣（LeetCode）
	链接：https://leetcode-cn.com/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof
	著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
*/
func Exchange1(nums []int) []int {
	return exchange1(nums)
}
func exchange1(nums []int) []int {
	l, r := 0, len(nums)-1
	for l < r {
		for l < len(nums)-1 && nums[l]%2 != 0 {
			l++
		}
		for r >= 0 && nums[r]%2 == 0 {
			r--
		}
		if l < r {
			nums[l], nums[r] = nums[r], nums[l]
			l++
			r--
		}
	}
	return nums
}
